package model.insigniaYlogros;

import java.util.ArrayList;
import java.util.List;

import model.Usuario.UsuarioRegistrado;


public class InsigniaCompuesta extends Insignia {


	private List<Insignia> insignias;


	public InsigniaCompuesta(String nombre, Insignia... insignias) {
		super(nombre);
		this.insignias=new ArrayList<Insignia>();
		for(int i=0;i <insignias.length;i++)
		{
			this.insignias.add(insignias[i]);
		}
	}


	@Override
	public <E> boolean seCumple(E elemento) {
		
		boolean b = true;
		for (Insignia insignia : insignias){
			b = b & insignia.seCumple(elemento);
		}
		
		return b;
	}


	@Override
	public List<Logro> getLogrosRestantePara(UsuarioRegistrado usuario) {
		List<Logro> logros=new ArrayList<Logro>();
		for(Insignia i:insignias)
		{
			logros.addAll(i.getLogrosRestantePara(usuario));
		}
		
		return logros;
	}


	@Override
	public List<Logro> getLogrosConseguidosPara(UsuarioRegistrado usuario) {
		
		List<Logro> logros=new ArrayList<Logro>();
		for(Insignia i:insignias)
		{
			logros.addAll(i.getLogrosConseguidosPara(usuario));
		}
		
		return logros;
	}


	





}
